package com.hsnn.medstgmini.base.dict.service.impl;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.hsnn.medstgmini.base.dict.dao.DicCompTypeDao;
import com.hsnn.medstgmini.base.dict.model.DicCompType;
import com.hsnn.medstgmini.base.dict.service.DicCompTypeManager;
import com.hsnn.medstgmini.model.Result;
import com.hsnn.medstgmini.util.Pagination;

@SuppressWarnings("deprecation")
@Service
public class DicCompTypeManagerImpl implements DicCompTypeManager {
	
	@Autowired
	private DicCompTypeDao dicCompTypeDao;
	public DicCompTypeDao getDicCompTypeDao() {
		return dicCompTypeDao;
	}
	public void setDicCompTypeDao(DicCompTypeDao dicCompTypeDao) {
		this.dicCompTypeDao = dicCompTypeDao;
	}

	/**新增企业注册类型**/
	@Transactional
	public void saveDicCompType(DicCompType dicCompType) {
		dicCompTypeDao.saveDicCompType(dicCompType);
	}
	
	/**修改企业注册类型**/
	@Transactional
	public void updateDicCompType(DicCompType dicCompType) {
		dicCompTypeDao.updateDicCompType(dicCompType);
	}
	
	/**新增/修改企业注册类型**/
	@Transactional
	public void saveOrUpdateDicCompType(DicCompType dicCompType) {
		dicCompTypeDao.saveOrUpdateDicCompType(dicCompType);
	}
	
	/**企业注册类型作废**/
	@Transactional
	public void disableDicCompType(DicCompType dicCompType) {
		dicCompTypeDao.disableDicCompType(dicCompType);
	}
	
	/**企业注册类型启用**/
	@Transactional
	public void enableDicCompType(DicCompType dicCompType) {
		dicCompTypeDao.enableDicCompType(dicCompType);
	}
	
	/**查询企业注册类型详情**/
	public DicCompType getDicCompTypeById(String id) {
		return dicCompTypeDao.getDicCompTypeById(id);
	}
	
	/**企业注册类型列表**/
	public List<DicCompType> getDicCompTypeList(Result result, DicCompType dicCompType) {
		return dicCompTypeDao.getDicCompTypeList(result, dicCompType);
	}

	@Override
	public Pagination getDicCompTypeList(Pagination page) {
		List<Object> list=dicCompTypeDao.getDicCompTypeList(page);
		List<DicCompType> data = new ArrayList<DicCompType>();
		if(list.size()>0){
			for(int i=0;i<list.size();i++){
				Object[] obj=(Object[]) list.get(i);
				DicCompType dct = new DicCompType();
				dct.setCompRegId(obj[0]==null?"":obj[0].toString());
				dct.setFatherCompRegCode(obj[1]==null?"":obj[1].toString());
				dct.setFatherCompRegName(obj[2]==null?"":obj[2].toString());
				dct.setCompRegCode(obj[3]==null?"":obj[3].toString());
				dct.setCompRegName(obj[4]==null?"":obj[4].toString());
				dct.setStatus(obj[5]==null?null:Short.parseShort(obj[5].toString()));
				dct.setFatherRemark(obj[6]==null?"":obj[6].toString());
				dct.setRemark(obj[7]==null?"":obj[7].toString());
				data.add(dct);
			}
		}
		page.setRows(data);
		return page;
	}
	
	/**企业注册类型全部列表**/
	public List<DicCompType> getDicCompTypeFullList() {
		return dicCompTypeDao.getDicCompTypeFullList();
	}

	/**
	 * @category 根据CompRegName查询CompRegId
	 * @author 韩守松
	 * @date   2015年6月13日
	 * @param  @param dicCompType
	 * @param  @return
	 */
	public List<DicCompType> getDicCompTypeByCompRegName(DicCompType dicCompType) {
		return dicCompTypeDao.getDicCompTypeByCompRegName(dicCompType);
	}
	
	/**
	 * @category 企业注册类型查询联动
	 * @author 韩守松
	 * @date   2015年6月29日
	 * @param  @param FatherId
	 * @param  @return
	 */
	public List<DicCompType> getDicCompTypeListByFatherId(String FatherId) {
		return dicCompTypeDao.getDicCompTypeListByFatherId(FatherId);
	}
	
	/**
	 * @category 启用企业注册类型查询联动
	 * @author 韩守松
	 * @date   2015年6月29日
	 * @param  @param FatherId
	 * @param  @return
	 */
	@Override
	public List<DicCompType> getQYCompTypeListByFatherId(String FatherId) {
		return dicCompTypeDao.getQYCompTypeListByFatherId(FatherId);
	}
	
	/**
	 *@category 停用启用（状态改变）
	 *@author wangbing
	 *@date 2015年6月9日
	 *void
	 */
	@Transactional
	@Override
	public int changeStatus(DicCompType dicCompType) {
		return dicCompTypeDao.changeStatus(dicCompType);
	}
	
	@Transactional
	@Override
	public Pagination initEdit(Pagination page){
		return dicCompTypeDao.initEdit(page);
	}
	
	/**
	 * 根据code或name查看有无重复数据
	 * @param code,name
	 * @return
	 */
	@Override
	public List<DicCompType> getCompTypeBy(String key,String value,String compTypeId) {
		return dicCompTypeDao.getCompTypeBy(key,value,compTypeId);
	}
	
	@Transactional
	@Override
	public void updateCompType(Pagination page) {
		dicCompTypeDao.updateCompType(page);
	}
	
	@Transactional
	@Override
	public void addCompType(Pagination page) {
		dicCompTypeDao.addCompType(page);
		
	}
	
	/**
	 * 根据条件获取不分页数据
	 * @param page
	 * @return page
	 */
	@Override
	public Pagination getDicCompTypeNoPage(Pagination page){
		return dicCompTypeDao.getDicCompTypeNoPage(page);
	}
}
